Skip to content

feat(workflows): adopt customize.toml pattern for workflow skills#30

Merged
bmadcode merged 3 commits intomainfrom
workflow-customization
Apr 21, 2026
Merged

feat(workflows): adopt customize.toml pattern for workflow skills#30
bmadcode merged 3 commits intomainfrom
workflow-customization

Conversation

@bmadcode
Copy link
Copy Markdown
Contributor

Summary

  • Merge each redirect-only SKILL.md with its workflow.md into a single integrated SKILL.md for all four workflow skills (bmad-cis-design-thinking, bmad-cis-innovation-strategy, bmad-cis-problem-solving, bmad-cis-storytelling).
  • Add the BMM customization surface: Conventions block, On Activation section (resolve customization → prepend steps → persistent_facts → config load → greet → append steps), and a final-step on_complete resolver action.
  • Add a customize.toml per workflow under the [workflow] namespace so overrides from _bmad/custom/*.toml and *.user.toml merge per the standard BMad structural rules.

Mirrors the customization surface shipped for the agent skills in #29. The previous split (SKILL.mdworkflow.md redirect) left no integration point for customization; this PR closes that gap.

Test plan

  • Install the module into a project and confirm each workflow activates through the new On Activation sequence (config loads from _bmad/cis/config.yaml, greet fires).
  • Add a non-empty on_complete in _bmad/custom/bmad-cis-design-thinking.user.toml and confirm it fires at the end of step 7.
  • Repeat the on_complete check for bmad-cis-innovation-strategy (step 9), bmad-cis-storytelling (step 10).
  • For bmad-cis-problem-solving, confirm on_complete fires whether the user stops after step 8 or runs the optional step 9.
  • Add a team-level override (persistent_facts = ["..."]) and confirm it appends rather than replacing the default.

Merge redirect-only SKILL.md with workflow.md content into a single
SKILL.md per workflow skill, add Conventions + On Activation (resolve
customization, prepend/append steps, persistent_facts, config load,
greet), and wire workflow.on_complete into the final step(s).

Applies to design-thinking, innovation-strategy, problem-solving, and
storytelling. Mirrors the customization surface shipped for the agent
skills in #29.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 21, 2026

Warning

Rate limit exceeded

@bmadcode has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 38 minutes and 33 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 38 minutes and 33 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d1cc9bde-033b-41db-bae7-ff9016615667

📥 Commits

Reviewing files that changed from the base of the PR and between 643aba8 and 10230d2.

📒 Files selected for processing (15)
  • .claude-plugin/marketplace.json
  • CHANGELOG.md
  • package.json
  • src/skills/bmad-cis-design-thinking/SKILL.md
  • src/skills/bmad-cis-design-thinking/customize.toml
  • src/skills/bmad-cis-design-thinking/workflow.md
  • src/skills/bmad-cis-innovation-strategy/SKILL.md
  • src/skills/bmad-cis-innovation-strategy/customize.toml
  • src/skills/bmad-cis-innovation-strategy/workflow.md
  • src/skills/bmad-cis-problem-solving/SKILL.md
  • src/skills/bmad-cis-problem-solving/customize.toml
  • src/skills/bmad-cis-problem-solving/workflow.md
  • src/skills/bmad-cis-storytelling/SKILL.md
  • src/skills/bmad-cis-storytelling/customize.toml
  • src/skills/bmad-cis-storytelling/workflow.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch workflow-customization

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented Apr 21, 2026

🤖 Augment PR Summary

Summary: This PR consolidates the four CIS workflow skills so each workflow is fully defined in its own SKILL.md, replacing the prior redirect-only SKILL.mdworkflow.md split.

Changes:

  • Merged each workflow’s content into src/skills/*/SKILL.md for design-thinking, innovation-strategy, problem-solving, and storytelling
  • Added a consistent “On Activation” sequence (customization resolve → prepend steps → persistent facts → config load → greet → append steps)
  • Introduced a workflow customization surface via new per-skill customize.toml files under a [workflow] namespace
  • Added an end-of-workflow on_complete hook that is resolved and optionally executed as a final terminal instruction
  • Removed the now-redundant workflow.md files from each workflow skill directory

Technical Notes: Customization is resolved through resolve_customization.py with base/team/user TOML merges following BMad structural merge rules; defaults include a persistent_facts glob for project-context.md discovery.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 4 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.


### Step 3: Load Persistent Facts

Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
Copy link
Copy Markdown

@augmentcode augmentcode Bot Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/skills/bmad-cis-design-thinking/SKILL.md:39 — The file: guidance says entries are “paths or globs under {project-root}”, but the agent skills treat file: entries as literal paths/globs and explicitly skip silently when nothing matches. Without that clarification, activation can end up failing (or the agent may invent file contents) on projects that don’t have project-context.md yet.

Severity: medium

Other Locations
  • src/skills/bmad-cis-innovation-strategy/SKILL.md:39
  • src/skills/bmad-cis-problem-solving/SKILL.md:39
  • src/skills/bmad-cis-storytelling/SKILL.md:39

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

## Inputs

- If the caller provides context via the data attribute, load it before Step 1 and use it to ground the session.
- Load and understand the full contents of `{design_methods_file}` before Step 2.
Copy link
Copy Markdown

@augmentcode augmentcode Bot Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/skills/bmad-cis-design-thinking/SKILL.md:69 — “Load and understand … before Step 2” is now ambiguous because there are On Activation steps plus workflow execution steps, so readers/automation may interpret the wrong “Step 2”. It would be clearer to reference “workflow Step 2” (or similar) to avoid inconsistent execution order.

Severity: low

Other Locations
  • src/skills/bmad-cis-innovation-strategy/SKILL.md:69
  • src/skills/bmad-cis-problem-solving/SKILL.md:69
  • src/skills/bmad-cis-storytelling/SKILL.md:70

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.


## Behavioral Constraints

- Communicate all responses in `communication_language`.
Copy link
Copy Markdown

@augmentcode augmentcode Bot Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/skills/bmad-cis-storytelling/SKILL.md:75 — This says “Communicate all responses in communication_language” (literal), but the config resolution uses {communication_language}. As written, the workflow may not actually switch languages as intended.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

<template-output>action_items</template-output>
<template-output>success_metrics</template-output>

<action>Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.</action>
Copy link
Copy Markdown

@augmentcode augmentcode Bot Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/skills/bmad-cis-design-thinking/SKILL.md:271 — These workflows invoke resolve_customization.py with --key workflow.on_complete; if the resolver only supports top-level blocks (as implied by existing --key agent / --key workflow usage), this may fail at runtime and prevent on_complete from running.

Severity: medium

Other Locations
  • src/skills/bmad-cis-innovation-strategy/SKILL.md:344
  • src/skills/bmad-cis-problem-solving/SKILL.md:304
  • src/skills/bmad-cis-problem-solving/SKILL.md:322
  • src/skills/bmad-cis-storytelling/SKILL.md:350

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resolve_customization.py already supports dotted keys — extract_key at line 169–177 splits on . and walks the tree, and the script docstring lists --key agent.menu as a supported example. So --key workflow.on_complete resolves to the on_complete scalar inside the merged [workflow] table exactly as intended.

- Disambiguate workflow step references in the Inputs section — "before
  Step N" now reads "before workflow Step N" since the activation block
  also numbers its steps 1-6.
- Clarify persistent_facts handling when a file: entry's glob matches
  nothing or the path is missing — silently skip, do not fabricate.
- Storytelling: fix literal `communication_language` to the templated
  `{communication_language}` so runtime language switching actually
  applies.
@bmadcode bmadcode merged commit 14a63b8 into main Apr 21, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant